require('./init');

// express 框架 就是 给你封装了 http 等模块
// 让你 不用再一个个的去处理 每个请求 然后 处理 各种流
// 处理 请求体 响应体这些

const express = require('express');
const app = express(); //创建一个express应用
// app 其实就是一个函数 用于处理请求的函数

// 配置一个请求映射，如果请求方法和请求路径均满足匹配，交给处理函数进行处理
// app.请求方法("请求路径", 处理函数)

app.get('/news/:id', (req, res) => {
  // 会自动处理 404
  // req 和 res 是被express封装过后的对象  不是http模块 原生的 对象
  // 获取请求信息
  console.log('请求头', req.headers); //获取请求头，对象
  console.log('请求路径', req.path);
  console.log('query', req.query);
  console.log('params', req.params);
  console.log(req, 'req');

  // 响应  send 表示写完了 不写的话 客户端会一只等待响应体
  // 1
  res.send({
    id: 123,
    name: '成哥',
    age: 18,
  });
  // 2
  // res.setHeader('a', '123');
  // res.send([2, 3, 4]);
  // 3
  // 302 临时重定向  301 永久重定向
  // end 就是 send
  // res.status(302).header('location', 'https://duyi.ke.qq.com').end();

  // res.status(302).location('https://duyi.ke.qq.com').end();
  // res.redirect(302, 'https://duyi.ke.qq.com');
});

// 匹配任何get请求
app.get('*', (req, res) => {
  console.log('abc');
});

const port = 5008;

// app 内部 调用 了 http 模块 进行 监听
app.listen(port, () => {
  console.log(`server listen on ${port}`);
});

//统一 REST 风格的api接口  ！！！

// 同一个资源  不同的请求方法  不同的操作 同一根路径

// api/student post 添加学生

// api/student get 获取学生列表

// api/student/:id get 获取指定学生

// api/student/:id put 修改指定学生

// api/student/:id delete 删除指定学生

// 也可将id 放到 query 中 请求体中
// app.get app.post app.put app.delete

// app.get((req, res) => {}); // 匹配所有的get请求
